37b6f9edf219fe10152ab99016828ef9bac528ac,sketches/src/main/java/com/yahoo/sketches/theta/IntersectionImpl.java,IntersectionImpl,heapifyInstance,#Memory#number#,123
Before Change
final long memAdd = srcMem.getCumulativeOffset(0L);
//Get Preamble
final int preLongsMem = extractPreLongs(memObj, memAdd);
final int serVer = extractSerVer(memObj, memAdd);
final int famID = extractFamilyID(memObj, memAdd);
//Note: Intersection does not use lgNomLongs (or k), per se.
final int lgArrLongs = extractLgArrLongs(memObj, memAdd); //current hash table size
final int flags = extractFlags(memObj, memAdd);
//seedHash loaded and checked in private constructor
final int curCount = extractCurCount(memObj, memAdd);
final long thetaLong = extractThetaLong(memObj, memAdd);
After Change
final int flags;
final int curCount;
final long thetaLong;
if (srcMem.isReadOnly() && !srcMem.isDirect()) {
preLongsMem = srcMem.getByte(PREAMBLE_LONGS_BYTE) & 0X3F;
serVer = srcMem.getByte(SER_VER_BYTE) & 0XFF;
famID = srcMem.getByte(FAMILY_BYTE) & 0XFF;
lgArrLongs = srcMem.getByte(LG_ARR_LONGS_BYTE) & 0XFF;
flags = srcMem.getByte(FLAGS_BYTE) & 0XFF;
curCount = srcMem.getInt(RETAINED_ENTRIES_INT);
thetaLong = srcMem.getLong(THETA_LONG);
} else {
final Object memObj = srcMem.array(); //may be null
final long memAdd = srcMem.getCumulativeOffset(0L);
preLongsMem = extractPreLongs(memObj, memAdd);
serVer = extractSerVer(memObj, memAdd);
famID = extractFamilyID(memObj, memAdd);
lgArrLongs = extractLgArrLongs(memObj, memAdd);
flags = extractFlags(memObj, memAdd);
curCount = extractCurCount(memObj, memAdd);
thetaLong = extractThetaLong(memObj, memAdd);
}